package wiki.zimo.certificate_manage.dao;

import wiki.zimo.certificate_manage.domain.StudentPrizeInfo;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;

/**
 *
 * @author 子墨
 * @date 2018/10/9 17:38
 * @describe 学生获奖信息 数据操作接口
 */
public interface StudentPrizeInfoDao extends JpaRepository<StudentPrizeInfo, String> {

    /**
     * 通过id找对对应的学生获奖信息
     * @author 子墨
     * @date 2018/10/24 8:44
     * @params [id]
     * @return wiki.zimo.certificate_manage.domain.StudentPrizeInfo
     */
    StudentPrizeInfo findStudentPrizeInfoById(String id);

    /**
     * @auther: 子墨
     * @date: 2018/10/28 10:25
     * @describe: 通过获奖等级计数
     * @param: [grade]
     * @return: java.lang.Long
     * @version v1.0
     */
    Long countAllByPrizeGrade(String grade);

    /**
     * @auther: 子墨
     * @date: 2018/10/28 20:15
     * @describe: 通过获奖等级和辅导员id计数
     * @param: [grade, id]
     * @return: java.lang.Long
     * @version v1.0
     */
    Long countAllByPrizeGradeAndTeacherId(String grade,String id);

    /**
     * @auther: 子墨
     * @date: 2018/10/28 20:17
     * @describe: 通过获奖等级和学生id计数
     * @param: [grade, id]
     * @return: java.lang.Long
     * @version v1.0
     */
    Long countAllByPrizeGradeAndStuId(String grade,String id);
    
    /**
     * @auther: 子墨
     * @date: 2018/10/28 10:54
     * @describe: 通过获奖级别计数
     * @param: [level]
     * @return: java.lang.Long
     * @version v1.0
     */
    Long countAllByPrizeLevel(String level);

    /**
     * @auther: 子墨
     * @date: 2018/10/28 20:16
     * @describe: 通过获奖级别和辅导员id计数
     * @param: [level, id]
     * @return: java.lang.Long
     * @version v1.0
     */
    Long countAllByPrizeLevelAndTeacherId(String level,String id);
    
    /**
     * @auther: 子墨
     * @date: 2018/10/28 20:18
     * @describe: 通过获奖级别和学生id计数
     * @param: [level, id]
     * @return: java.lang.Long
     * @version v1.0
     */
    Long countAllByPrizeLevelAndStuId(String level,String id);
    
    /**
     * @auther: 子墨
     * @date: 2018/10/28 16:16
     * @describe: 通过辅导员id查找出获奖信息
     * @param: [id]
     * @return: java.util.List<wiki.zimo.certificate_manage.domain.StudentPrizeInfo>
     * @version v1.0
     */
    List<StudentPrizeInfo> findAllByTeacherId(String id);
    
    /**
     * @auther: 子墨
     * @date: 2018/10/28 16:19
     * @describe: 通过学生id查找获奖信息
     * @param: [id]
     * @return: java.util.List<wiki.zimo.certificate_manage.domain.StudentPrizeInfo>
     * @version v1.0
     */
    List<StudentPrizeInfo> findAllByStuId(String id);

    /**
     * @auther: 子墨
     * @date: 2018/10/28 16:32
     * @describe: 通过学生id计数
     * @param: [id]
     * @return: java.lang.Long
     * @version v1.0
     */
    Long countAllByStuId(String id);
    
    /**
     * @auther: 子墨
     * @date: 2018/10/28 16:32
     * @describe: 通过辅导员id计数
     * @param: [id]
     * @return: java.lang.Long
     * @version v1.0
     */
    Long countAllByTeacherId(String id);
}